// 引入项目中全部的全局组件
import SvgIcon from './SvgIcon/index.vue';
// 引入分类组件
import Category from './Category/index.vue';
import type { App, Component } from 'vue';
// 定义了一个常量对象 components，该对象可以具有任何字符串作为键，并且这些键的值应该是 Component 类型
// 在此特定情况下，它只初始化了一个键（SvgIcon）
const components: { [name: string]: Component } = { SvgIcon,Category};
// 引入element-plus提供的全部图标组件
import * as ElementPlusIconsVue from '@element-plus/icons-vue';
// 对外暴漏插件对象
export default {
    install(app: App) {
        // 注册项目全部的全局组件
        // Object.keys(components) es6语法，获取对象所有key
        Object.keys(components).forEach((key: string) => {
            // 注册为全局组件
            app.component(key, components[key]);
        })
        // 将element-plus的图标注册为全局组件
        for (const [key, component] of Object.entries(ElementPlusIconsVue)) {
            app.component(key, component)
        }
    }
}

